#include #include #include #include int main() { const int motor_a=26; const int motor_b=23; const int tmp102_address=0x48; const int tmp102_temp_reg=0x00; int duty=0; wiringPiSetup(); softPwmCreate(motor_a, duty, 100); pinMode(motor_b, OUTPUT); digitalWrite(motor_b, LOW); int fd=wiringPiI2CSetup(tmp102_address); if(fd==-1){ fprintf(stderr, "error: wiringPiI2CSetup()\n"); return 1; } while(1){ int data=wiringPiI2CReadReg16(fd, tmp102_temp_reg); data=((data&0xff)<<4)|((data&0xF000)>>12); double temp=data*0.0625; printf("temperature: %.2f, ADC data: %d\n", temp, data); if(temp<20){ if(duty!=0){ duty=0; softPwmWrite(motor_a, duty); printf("duty: %d\n", duty); } } else if(temp<25){ if(duty!=50){ duty=50; softPwmWrite(motor_a, duty); printf("duty: %d\n", duty); } } else{ if(duty!=100){ duty=100; softPwmWrite(motor_a, duty); printf("duty: %d\n", duty); } } delay(1000); } return 0; }